
package proxy.statical.perfect;

import com.e885.log.E885Logger;
import common.HelloException;
import common.HelloInterface;

/**
 * 有關 log 的部份, 都放在這個代理物件中<br>
 * 因為代理物件和被代理物件都必須 implement 同一個 interface.
 * 
 * @author Eric.Kao(gau168.gau@msa.hinet.net)
 * @version 1.0
 * @company E885 Group
 * @copyright Copyright (c) 2001-2008
 */

public class HelloProxy implements HelloInterface
{
	// 被代理的物件
	private HelloInterface hello;

	public HelloProxy( HelloInterface hello )
	{
		this.hello = hello;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see common.HelloInterface#sayHello(java.lang.String)
	 */
	public void sayHello( String name ) throws HelloException
	{
		E885Logger.testLog.debug( "在方法執行之前，記錄 log" );

		hello.sayHello( name );

		E885Logger.testLog.debug( "在方法執行之後，記錄 log" );
	}

	public void sayHi( String name ) throws HelloException
	{
		// 目前用不到
		throw new IllegalStateException( "Not implementation" );
	}

}
